<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.29
     from oil.tnf on 19 December 2010 -->

<TITLE>Oil Reference Manual - Table of Contents</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="gifs/bg.gif">
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0" VALIGN=BOTTOM>
<TR VALIGN=BOTTOM>
<TD WIDTH="160" VALIGN=BOTTOM>
<A HREF="http://eli-project.sourceforge.net/">
<IMG SRC="gifs/elilogo.gif" BORDER=0>
</A>&nbsp;
</TD>
<TD WIDTH="25" VALIGN=BOTTOM>
<img src="gifs/empty.gif" WIDTH=25 HEIGHT=25>
</TD>
<TD ALIGN=LEFT WIDTH="475" VALIGN=BOTTOM>
<A HREF="index.html"><IMG SRC="gifs/title.png" BORDER=0></A>
</TD>
<!-- |DELETE FOR SOURCEFORGE LOGO|
<TD>
<a href="http://sourceforge.net/projects/eli-project">
<img
  src="http://sflogo.sourceforge.net/sflogo.php?group_id=70447&amp;type=13"
  width="120" height="30"
  alt="Get Eli: Translator Construction Made Easy at SourceForge.net.
    Fast, secure and Free Open Source software downloads"/>
</a>
</TD>
|DELETE FOR SOURCEFORGE LOGO| -->
</TR>
</TABLE>

<HR size=1 noshade width=785 align=left>
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0>
<TR>
<TD VALIGN=TOP WIDTH="160">
<h4>General Information</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="index.html">Eli: Translator Construction Made Easy</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gindex_1.html#SEC1">Global Index</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="faq_toc.html" >Frequently Asked Questions</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Tutorials</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="EliRefCard_toc.html">Quick Reference Card</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="novice_toc.html">Guide For new Eli Users</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="news_toc.html">Release Notes of Eli</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="nametutorial_toc.html">Tutorial on Name Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="typetutorial_toc.html">Tutorial on Type Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Reference Manuals</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ui_toc.html">User Interface</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="pp_toc.html">Eli products and parameters</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lidoref_toc.html">LIDO Reference Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Libraries</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lib_toc.html">Eli library routines</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="modlib_toc.html">Specification Module Library</a></td></tr>
</table>

<h4>Translation Tasks</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lex_toc.html">Lexical analysis specification</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="syntax_toc.html">Syntactic Analysis Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="comptrees_toc.html">Computation in Trees</a></td></tr>
</table>

<h4>Tools</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lcl_toc.html">LIGA Control Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="show_toc.html">Debugging Information for LIDO</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gorto_toc.html">Graphical ORder TOol</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="fw_toc.html">FunnelWeb User's Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ptg_toc.html">Pattern-based Text Generator</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="deftbl_toc.html">Property Definition Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="oil_toc.html">Operator Identification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="tp_toc.html">Tree Grammar Specification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="clp_toc.html">Command Line Processing</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="cola_toc.html">COLA Options Reference Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="idem_toc.html">Generating Unparsing Code</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="mon_toc.html">Monitoring a Processor's Execution</a> </td></tr>
</table>

<h4>Administration</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="sysadmin_toc.html">System Administration Guide</a> </td></tr>
</table>

<HR WIDTH="100%">
<A HREF="mailto:eli-project-users@lists.sourceforge.net">
<IMG SRC="gifs/button_mail.gif" BORDER=0 ALIGN="left"></A>
<A HREF="index.html"><IMG SRC="gifs/home.gif" BORDER=0 ALIGN="right"></A>

</TD>
<TD VALIGN=TOP WIDTH="25"><img src="gifs/empty.gif" WIDTH=25 HEIGHT=25></TD>

<TD VALIGN=TOP WIDTH="600">
<A HREF="oil.pdf"><IMG SRC="gifs/pdficon_large.gif" ALT="Open PDF File" BORDER="0" ALIGN=RIGHT></A>
<H1>Oil Reference Manual</H1>
<P>
<P>
This a reference manual for OIL (Eli's operator identification
specification facility.)  OIL is a specification
language and a set of library functions used in the specification and
implementation of operator identification within a compiler.
<P>
The specification language is the means for describing the operator
identification for a compiler's source language and a mapping
into the compiler's target language.  The support library is
the means for using the relationships described in the user's
specification to implement the desired operator identification in the
context of an attribute grammar.  The relationship between a user's
specification and calls on the library functions are elaborated by means
of some examples.
<P>
<P>
<UL>
<LI><A NAME="SEC1" HREF="oil_1.html#SEC1">Introduction</A>
<UL>
<LI><A NAME="SEC2" HREF="oil_1.html#SEC2">Operator identification</A>
<LI><A NAME="SEC3" HREF="oil_1.html#SEC3">Coercions</A>
<LI><A NAME="SEC4" HREF="oil_1.html#SEC4">Sets of possible types</A>
<LI><A NAME="SEC5" HREF="oil_1.html#SEC5">Classes</A>
<LI><A NAME="SEC6" HREF="oil_1.html#SEC6">Names for operators, types and classes</A>
</UL>
<LI><A NAME="SEC7" HREF="oil_2.html#SEC7">A review of an example OIL Specification</A>
<LI><A NAME="SEC8" HREF="oil_3.html#SEC8">OIL's Specification Language</A>
<UL>
<LI><A NAME="SEC9" HREF="oil_3.html#SEC9">Identifiers</A>
<LI><A NAME="SEC10" HREF="oil_3.html#SEC10">Comments</A>
<LI><A NAME="SEC11" HREF="oil_3.html#SEC11">Statement types</A>
<UL>
<LI><A NAME="SEC12" HREF="oil_3.html#SEC12">Operator definition</A>
<UL>
<LI><A NAME="SEC13" HREF="oil_3.html#SEC13">Function Signatures</A>
</UL>
<LI><A NAME="SEC14" HREF="oil_3.html#SEC14">Coercion operator definition</A>
<LI><A NAME="SEC15" HREF="oil_3.html#SEC15">Operator identification</A>
<LI><A NAME="SEC16" HREF="oil_3.html#SEC16">Class definition</A>
<LI><A NAME="SEC17" HREF="oil_3.html#SEC17">Type set definition</A>
</UL>
</UL>
<LI><A NAME="SEC18" HREF="oil_4.html#SEC18">OIL's Support Library</A>
<UL>
<LI><A NAME="SEC19" HREF="oil_4.html#SEC19">Library Types</A>
<LI><A NAME="SEC20" HREF="oil_4.html#SEC20">Set of Possible Types</A>
<LI><A NAME="SEC21" HREF="oil_4.html#SEC21">Validating operator identification</A>
<LI><A NAME="SEC22" HREF="oil_4.html#SEC22">Simpler operator identification</A>
<LI><A NAME="SEC23" HREF="oil_4.html#SEC23">Looking at an operator's type signature</A>
<LI><A NAME="SEC24" HREF="oil_4.html#SEC24">Coercion sequences</A>
<LI><A NAME="SEC25" HREF="oil_4.html#SEC25">Instantiate Classes</A>
<LI><A NAME="SEC26" HREF="oil_4.html#SEC26">Name Functions</A>
<LI><A NAME="SEC27" HREF="oil_4.html#SEC27">Compile Time</A>
<UL>
<LI><A NAME="SEC28" HREF="oil_4.html#SEC28">Types</A>
<LI><A NAME="SEC29" HREF="oil_4.html#SEC29">Operators</A>
<LI><A NAME="SEC30" HREF="oil_4.html#SEC30">Argument Signatures</A>
<LI><A NAME="SEC31" HREF="oil_4.html#SEC31">Coercions</A>
<LI><A NAME="SEC32" HREF="oil_4.html#SEC32">Identifications</A>
<LI><A NAME="SEC33" HREF="oil_4.html#SEC33">Classes</A>
</UL>
</UL>
<LI><A NAME="SEC34" HREF="oil_5.html#SEC34">Relating an OIL specification to library function calls</A>
<UL>
<LI><A NAME="SEC35" HREF="oil_5.html#SEC35">Using Names</A>
<LI><A NAME="SEC36" HREF="oil_5.html#SEC36">A simple example</A>
<UL>
<LI><A NAME="SEC37" HREF="oil_5.html#SEC37">Definitions from the specification</A>
<LI><A NAME="SEC38" HREF="oil_5.html#SEC38">Operator Identification</A>
<LI><A NAME="SEC39" HREF="oil_5.html#SEC39">Operator Signatures</A>
<LI><A NAME="SEC40" HREF="oil_5.html#SEC40">Coercion sequence</A>
</UL>
<LI><A NAME="SEC41" HREF="oil_5.html#SEC41">A more complex example</A>
<UL>
<LI><A NAME="SEC42" HREF="oil_5.html#SEC42">Using type sets</A>
</UL>
<LI><A NAME="SEC43" HREF="oil_5.html#SEC43">Using Classes</A>
</UL>
<LI><A NAME="SEC44" HREF="oil_6.html#SEC44">Design Hints</A>
<UL>
<LI><A NAME="SEC45" HREF="oil_6.html#SEC45">Incremental Design and Implementation</A>
<LI><A NAME="SEC46" HREF="oil_6.html#SEC46">Identifying Operands</A>
<LI><A NAME="SEC47" HREF="oil_6.html#SEC47">Error Handling</A>
<LI><A NAME="SEC48" HREF="oil_6.html#SEC48">Modeling OIL's function</A>
<LI><A NAME="SEC49" HREF="oil_6.html#SEC49">Schema Restrictions</A>
<LI><A NAME="SEC50" HREF="oil_6.html#SEC50">Identification Algorithm</A>
</UL>
<LI><A NAME="SEC51" HREF="oil_7.html#SEC51">Index</A>
</UL>
<HR size=1 noshade width=600 align=left>
</TD>
</TR>
</TABLE>

</BODY></HTML>
